Modern computer systems allow users to interact with multiple applications that are running on a computer system. For example, in a typical personal computer, a user may have multiple windows open at the same time. One window may display a document window from a word processing application, which allows the user to type into the document window. Meanwhile, another window may display a video feed from a video application, which the user may watch while simultaneously taking notes in the document window. In another example, a user may play a video game by interacting with a display screen of a video game system via a video game controller, whereby the video game controller issues commands to a video game application executing on the video game system. While playing the game, the user may play music generated from another music application on a speaker of the video game system. The user may periodically switch focus to the music application to advance to a desired track, and then return focus to playing the video game.
While, as described above, existing computer systems typically allow multiple outputs from applications (e.g., video feed, audio feed) to be concurrently presented on a device (e.g., display monitor, speaker) of the computer system in order for a user to interact with an application, these existing computer systems require a user to switch an application's focus from the (graphical user interface) GUI background to the foreground. However, these constraints introduce technical challenges for existing computer systems that support multiple applications concurrently running on the same computer system. Therefore, there is a need to improve user interaction with multiple concurrently executing applications on a computer system.